RowMapper কি এবং কেন এটি প্রয়োজন?

Java Technologies - স্প্রিং জেডিবিসি (Spring JDBC) Spring JDBC এ RowMapper এবং BeanPropertyRowMapper |
75
75

RowMapper হল Spring Framework এর একটি ইন্টারফেস যা ডেটাবেস টেবিলের একটি রো (row) কে জাভা অবজেক্টে রূপান্তর করতে ব্যবহৃত হয়। এটি org.springframework.jdbc.core.RowMapper প্যাকেজের অন্তর্ভুক্ত।

RowMapper ইন্টারফেসটি একটি একক মেথড প্রদান করে:

T mapRow(ResultSet rs, int rowNum) throws SQLException;
  • ResultSet: ডেটাবেস থেকে প্রাপ্ত রো এর ডেটা ধারণ করে।
  • rowNum: রো এর ইনডেক্স।
  • T: রিটার্ন টাইপ যা ডেভেলপার নির্ধারণ করে।

RowMapper কেন প্রয়োজন?

  1. ডেটা রূপান্তর সহজ করে:
    • ডেটাবেস টেবিলের রো থেকে ডেটা রিড করে তা সরাসরি জাভা অবজেক্টে রূপান্তর করে।
    • ম্যানুয়াল ResultSet প্রসেসিং এড়িয়ে যায়।
  2. কোড রিডেবিলিটি বাড়ায়:
    • পৃথক ResultSet হ্যান্ডলিং কোড লেখার প্রয়োজন হয় না, যা কোডকে ছোট এবং পরিষ্কার রাখে।
  3. পুনরায় ব্যবহারযোগ্যতা:
    • RowMapper একবার লিখে বিভিন্ন স্থানে ব্যবহার করা যায়।
  4. কমপ্লেক্সিটি কমায়:
    • জটিল SQL রেজাল্ট হ্যান্ডলিং প্রক্রিয়া সরলীকৃত করে।

RowMapper এর উদাহরণ

১. সহজ RowMapper উদাহরণ

ডেটাবেস থেকে User অবজেক্ট তৈরি করার জন্য একটি RowMapper ইমপ্লিমেন্টেশন:

import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;

public class UserRowMapper implements RowMapper<User> {
    @Override
    public User mapRow(ResultSet rs, int rowNum) throws SQLException {
        User user = new User();
        user.setId(rs.getInt("id"));
        user.setName(rs.getString("name"));
        user.setEmail(rs.getString("email"));
        return user;
    }
}

২. JdbcTemplate এ RowMapper ব্যবহার

import org.springframework.jdbc.core.JdbcTemplate;
import java.util.List;

public class UserDao {
    private JdbcTemplate jdbcTemplate;

    public UserDao(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

    public List<User> getAllUsers() {
        String sql = "SELECT id, name, email FROM users";
        return jdbcTemplate.query(sql, new UserRowMapper());
    }
}

৩. ল্যাম্বডা এক্সপ্রেশনের মাধ্যমে RowMapper

RowMapper ইন্টারফেস সরাসরি ল্যাম্বডা এক্সপ্রেশন বা অ্যানোনিমাস ক্লাস ব্যবহার করেও ইমপ্লিমেন্ট করা যায়:

public List<User> getAllUsers() {
    String sql = "SELECT id, name, email FROM users";
    return jdbcTemplate.query(sql, (rs, rowNum) -> {
        User user = new User();
        user.setId(rs.getInt("id"));
        user.setName(rs.getString("name"));
        user.setEmail(rs.getString("email"));
        return user;
    });
}

RowMapper এর সুবিধা

  1. কোড পুনরাবৃত্তি এড়ায়:
    • ResultSet হ্যান্ডলিং এর জন্য বারবার কোড লেখার প্রয়োজন হয় না।
  2. উচ্চমানের কোড রিডেবিলিটি:
    • RowMapper ব্যবহার করে ডেটাবেস অপারেশন আরও সুসংগঠিত হয়।
  3. পুনঃব্যবহারযোগ্যতা:
    • একই RowMapper ক্লাস বিভিন্ন স্থানে ব্যবহার করা যায়।
  4. লাইটওয়েট সমাধান:
    • ORM (যেমন Hibernate) এর তুলনায় এটি সহজ এবং দ্রুত কাজ করে।

RowMapper এর সীমাবদ্ধতা

  1. জটিল ডেটা স্ট্রাকচারের জন্য উপযুক্ত নয়:
    • জটিল নেস্টেড অবজেক্ট বা একাধিক টেবিল থেকে ডেটা ম্যাপ করার ক্ষেত্রে এটি সীমাবদ্ধ।
  2. ম্যাপিং ম্যানুয়াল:
    • প্রতিটি ফিল্ডের জন্য ম্যানুয়াল সেটার কল করতে হয়।

উপসংহার

Spring JDBC এর RowMapper একটি শক্তিশালী টুল যা ডেটাবেস রো-কে জাভা অবজেক্টে রূপান্তর করার কাজকে সহজ, দ্রুত এবং কার্যকরী করে তোলে। এটি ডেটাবেস অপারেশনকে আরও রিডেবল এবং পুনঃব্যবহারযোগ্য করে তোলে, যা ডেভেলপারদের ডেটাবেস ইন্টিগ্রেশন সহজ করতে সাহায্য করে।

Content added By
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion